class Animal:
    def __init__(self, color, gender):
        self.color = color
        self.gender = gender
    def eat(self):
        print(f'{self.color}动物正在吃东西')
    def drink(self):
        print('正在喝水')
    def run(self):
        print('正在奔跑')
    def sleep(self):
        print('正在睡觉')
# a1 = Animal('黄色', '公')
# a1.eat()
# 定义Dog类，继承Animal类
class Dog(Animal):
    # 属性继承：子类中如果有构造方法，不会调用父类构造方法
    def __init__(self, color, gender, name):
        # 调用父类的构造方法, 才会继承父类的属性
        Animal.__init__(self, color, gender)
        # 添加子类的属性
        self.name = name
    def bark(self):
        print(f'{self.name}正在汪汪叫')
# 通过Dog创建对象
# d1 = Dog('黄色', '母', '大黄')
# d1.eat()
# d1.bark()

# 多重继承
class A:
    def func01(self):
        print('A func01')
    def func04(self):
        print('A func04')
class B:
    def func02(self):
        print('B func02')
    def func04(self):
        print('B func04')
# 继承A、B两个类
class C(A, B):
    def func03(self):
        print('C func03')
c1 = C()
# c1.func01()
# c1.func02()
# c1.func03()
c1.func04()


